#ifndef __TAG_H_
#define __TAG_H_
#include "../Parser/parser.h"
#define TAGMAX 5

typedef struct {
    char* tag;
    char** subtags;
    int cant_subtags;
 }tipoTag;


/*
PRE: Recive un vector de tags, su cantodad de elementos, un TAG a buscar y una variable para devolver la posicion del TAG a buscar.
POS: Devuelve la pocicion del TAG buscado. Si lo encuntra devulve OK y sino -1.
*/
int buscar_tags(tipoTag vec_tags[], int cant_tags, char* clave, int* tag_buscado);

/*
PRE: Recibe un TAG y un subtag a buscar.
POS:Si el subtag buscado pertenece a la lista de subtags del TAG enviado devuelve OK sino -1.
*/
int buscar_subtags(tipoTag* etiqueta, char* clave);

/*
PRE: Recibe un TAG y un nombre de TAG.
POS: Graba el nombre del TAG en el TAG recibido.
*/
int set_tag(tipoTag* tags, char* tag);

/*
PRE: Recibe un TAG, una lista de subtags y la cantidad de subtags.
POS: Guarda la lista y la cantidad de subtags adentro del TAG.
*/
int set_subtags(tipoTag* tag, char** subtags,int cant_subtags);

/*
PRE: Recibe una lista de subtags y la cantidad de elementos de la lista
POS: Libera la memoria de esa lista.
*/
int limpiar_subtags(char** subtags,int cant_subtags);

/*
PRE: Recibe un vector de TAGs con su cantidad y la ruta de un archivo realizar la carga.
POS: Devuelve el vector de TAGs cargado y su cantidad de elementos.
*/
int Cargar_tag_ArchConf (tipoTag vec_tags[],int* cant_vec_tags,char* ruta_arch_conf);

#endif
